
using System;

namespace NuevoGenNHibernate.EN.Ebay
{
public class SubastaEN                  :                           NuevoGenNHibernate.EN.Ebay.VentaEN


{
/**
 *
 */

private Nullable<DateTime> fechaFin;

/**
 *
 */

private float minimoPuja;

/**
 *
 */

private int totalPujas;

/**
 *
 */

private System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.PujaEN> pujas;





public virtual Nullable<DateTime> FechaFin {
        get { return fechaFin; } set { fechaFin = value;  }
}


public virtual float MinimoPuja {
        get { return minimoPuja; } set { minimoPuja = value;  }
}


public virtual int TotalPujas {
        get { return totalPujas; } set { totalPujas = value;  }
}


public virtual System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.PujaEN> Pujas {
        get { return pujas; } set { pujas = value;  }
}





public SubastaEN() : base ()
{
        pujas = new System.Collections.Generic.List<NuevoGenNHibernate.EN.Ebay.PujaEN>();
}



public SubastaEN(int id_venta, Nullable<DateTime> fechaFin, float minimoPuja, int totalPujas, System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.PujaEN> pujas, bool finalizado, NuevoGenNHibernate.Enumerated.Ebay.TipoDePagoEnum formaDePago, Nullable<DateTime> fecha, string nombre, string descripcion, float precioFinal, float gastosEnvio, NuevoGenNHibernate.EN.Ebay.UsuarioEN vendedor, NuevoGenNHibernate.EN.Ebay.UsuarioEN comprador, NuevoGenNHibernate.EN.Ebay.UsuarioEN usuario, NuevoGenNHibernate.EN.Ebay.PagoEN pago, System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.VotacionEN> votacion, System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.LineaVentaEN> lineaVenta)
{
        this.init (id_venta, fechaFin, minimoPuja, totalPujas, pujas, finalizado, formaDePago, fecha, nombre, descripcion, precioFinal, gastosEnvio, vendedor, comprador, usuario, pago, votacion, lineaVenta);
}


public SubastaEN(SubastaEN subasta)
{
        this.init (subasta.Id_venta, subasta.FechaFin, subasta.MinimoPuja, subasta.TotalPujas, subasta.Pujas, subasta.Finalizado, subasta.FormaDePago, subasta.Fecha, subasta.Nombre, subasta.Descripcion, subasta.PrecioFinal, subasta.GastosEnvio, subasta.Vendedor, subasta.Comprador, subasta.Usuario, subasta.Pago, subasta.Votacion, subasta.LineaVenta);
}

private void init (int id_venta, Nullable<DateTime> fechaFin, float minimoPuja, int totalPujas, System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.PujaEN> pujas, bool finalizado, NuevoGenNHibernate.Enumerated.Ebay.TipoDePagoEnum formaDePago, Nullable<DateTime> fecha, string nombre, string descripcion, float precioFinal, float gastosEnvio, NuevoGenNHibernate.EN.Ebay.UsuarioEN vendedor, NuevoGenNHibernate.EN.Ebay.UsuarioEN comprador, NuevoGenNHibernate.EN.Ebay.UsuarioEN usuario, NuevoGenNHibernate.EN.Ebay.PagoEN pago, System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.VotacionEN> votacion, System.Collections.Generic.IList<NuevoGenNHibernate.EN.Ebay.LineaVentaEN> lineaVenta)
{
        this.Id_venta = id_venta;


        this.FechaFin = fechaFin;

        this.MinimoPuja = minimoPuja;

        this.TotalPujas = totalPujas;

        this.Pujas = pujas;

        this.Finalizado = finalizado;

        this.FormaDePago = formaDePago;

        this.Fecha = fecha;

        this.Nombre = nombre;

        this.Descripcion = descripcion;

        this.PrecioFinal = precioFinal;

        this.GastosEnvio = gastosEnvio;

        this.Vendedor = vendedor;

        this.Comprador = comprador;

        this.Usuario = usuario;

        this.Pago = pago;

        this.Votacion = votacion;

        this.LineaVenta = lineaVenta;
}

public override bool Equals (object obj)
{
        if (obj == null)
                return false;
        SubastaEN t = obj as SubastaEN;
        if (t == null)
                return false;
        if (Id_venta.Equals (t.Id_venta))
                return true;
        else
                return false;
}

public override int GetHashCode ()
{
        int hash = 13;

        hash += (null == Id_venta ? 0 : this.Id_venta.GetHashCode ());
        return hash;
}
}
}
